home *** CD-ROM | disk | FTP | other *** search
- FUNCY 2: A GRAPH PLOTTING APPLICATION
-
- ---- NB THIS APPLICATION IS SHAREWARE -----
-
-
- THIS FILE DETAILS REVISION HISTORY, DETAILS OF BUGS AND PLANNED UPDATES
-
- SEE !HELP FOR INSTRUCTIONS ON USE AND LICENCE CONDITIONS
-
- JUST BECAUSE THIS FILE DOESN'T CONTAIN THE LICENCE CONDITIONS IT DOESN'T
- MEAN THERE AREN'T ANY ---- OK?
-
- ALSO SEE FILES DIRECTORY INSIDE !FUNCY2 DIRECTORY FOR SOME EXAMPLES
-
-
- ====================== IMPORTANT BIT NUMBER ONE =======================
-
- PLEASE PLEASE PLEASE INFORM ME OF ANY BUGS YOU FIND AND ANY SUGGESTIONS FOR
- IMPROVEMENT. I AM KEEN TO DEVELOP THE PROGRAM FURTHER AND WOULD THEREFORE
- INVITE YOU TO BECOME A REGISTERED USER. I CAN'T PROMISE AN IMMEDIATE UPDATE
- (UNLESS THERE'S A REALLY DIRE BUG) BUT THE MORE PEOPLE WHO REGISTER, THE
- SOONER I'LL BE ABLE TO AFFORD SOME PRMS AND DO A PROPER JOB (as we say down
- here).
-
- IF ANYBODY IS USING THIS IN AN EDUCATIONAL ESTABLISHMENT COULD THEY TELL ME
- HOW THE SOFTWARE SURVIVES. I'M ALSO INTERESTED TO KNOW IF IT RUNS ON A
- NETWORK.
-
- SO... REPORTS OF BUGS, FAT CHEQUES OR ANY COMMUNICATION REALLY TO
-
- RICHARD BLYTHE
- 37 WELL WAY
- PORTH
- NEWQUAY
- CORNWALL
- TR7 3LS
-
-
-
- All files except WimpHeap library copyright (c) 1994 Richard Blythe
-
- WimpHeap library is courtesy of Ben Summers and (c) Acorn Computing Magazine
- December 1993. Without WimpHeap this program could not be written so thanks
- Ben and thanks Europress for such a good magazine.
-
-
- ====================== IMPORTANT BIT NUMBER TWO =======================
-
- READ IMPORTANT BIT NUMBER ONE AND THE !HELP FILE
-
-
- ===================== IMPORTANT BIT NUMBER THREE ======================
-
-
- Re Newlook vs Oldlook.
-
- This application was developed using the NewLook sprites. When I tried out
- the 'OldLook' sprites, they looked a bit odd, so an alternative set of
- Templates 'OldLook' is supplied if you need them. If you do, follow these
- instructions:
-
- 1) Shift+Double click on !Funcy2.
-
- 2) Click MENU over the 'Templates' icon.
-
- 3) Move across "File 'Templates'" and down to "Delete" and click with
- SELECT.
-
- 4) Click MENU over the 'OldLook' icon.
-
- 5) Move across "File 'OldLook'" to "Copy" and further to the "Copy" box.
-
- 6) Press CTRL-U and then type 'Templates' and press RETURN
-
- 7) Now run !Funcy2
-
- If you ever need the original Newlook templates back then follow the above
- procedure highlighting NewLook rather than OldLook.
-
-
- UPDATES SO FAR
- ==============
-
- This is basically the first version of Funcy but you'll have noticed it is
- called Funcy 2 so I had better fill you in about version 1 which actually
- never got much further than v0.90!
-
-
- VERSION 0.90 (Sometime in 1993)
-
- Original version of !Funcy. Terrible user interface, really bad
- opton/optoff sprites (pre NewLook), even worse bumper buttons for colour
- selection, only 8 plots supported. HOWEVER it looked quite nice in some
- respect as it used lots of outline fonts, which slowed things down nicely as
- well though. Made great use of the WimpExt module which, although it saves
- programming time has a few 'features' which annoyed me. Options such as
- zooming never quite got implemented before I started on:
-
-
- VERSION 2.00 (Started 20.1.1994 - Completed 13.5.1994)
-
- Completely new user interface (still not brilliant but that's something that
- I'll sort out in version 3) with lots of panes to allow for many plots.
- Uses all the lovely !NewLook sprites - but see above if you haven't got
- !NewLook.
-
- Abandoned use of the WimpExt module, partly due to aforementioned features
- but also because I felt I was "cheating." (I do have my pride)
-
- (NOTE TO JON RIBBENS AND DOGGYSOFT: Your WimpExt module is very good in
- lots of areas and probably invaluable to machine code programmers but I felt
- for this purpose it was not entirely suitable. This is not a reflection on
- your coding, more my personal idiosyncracies!)
-
- Support for preset functions with range and user-definable functions added.
-
- Greater control over appearance of final graph added with ability to resize
- as well as move graph from 'Appearance' window. Facility to label graphs
- added but gets confused with step sizes containing decimals (see later)
-
- Ability to do calculus and transformations added - and it worked first time,
- ok second time but even so :-)
-
- Trace window now has ability to round off position to sensible no of dps or
- sfs. See later for feature info, though :-(
-
- Calculation of graphs now done before plot to save time when redrawing
- windows (it's still somewhat slow though - see later)
-
-
- VERSION 2.01 (21.05.1994)
-
- Grid and substitution of functions made more reliable.
-
- Function key shortcuts added
-
- New file format - saves range and other parameters as well
-
-
- VERSION 2.02 (22.05.1994 - rapid updates don't you think?)
-
- Graph labelling doesn't muck up rest of desktop when using multiscan
- monitor.
-
- More sensible spacing in the panes of plot, user, preset and transform
- windows.
-
- Message_PreQuit now supported. No more silly 'Are you sure you want to
- quit?' windows appearing behind the 'You may now switch off safely' message.
- Also won't shutdown system if only doing a 'Task -> Quit' from the Task
- Display window (but who ever closes down applications that way anyhow?)
-
-
-
- KNOWN FEATURES (VERY IMPORTANT)
- ===============================
-
- By now you'll have realised 'feature' is a euphemism for 'bug'. I'm going
- to stick my neck out and say that Funcy 2 is relatively bug-free :-)
- Relative to what is for you to find out and tell me. The program has
- survived my personal use (including checking my A level maths revision when
- it comes to differentiating functions like '2sin(x)-3cosec(x)' which my
- teacher seems to be keen on) but whether it can survive your use is another
- matter (please read licence conditions... I cannot be held responsible for
- loss etc nor for incorrect answers in your maths homework!)
-
- The things I know about are:
-
- rounding off of mouse position in trace window. Doesn't give quite the
- right answer sometimes as decimal points get in the way rather.
-
- labelling is a little ugly I think you'll agree. Nasty rounding can occur
- which results in silly labelling appearing. Also labels can crash into axes
- - something I was trying to avoid but this labelling is only an interim
- measure as it is. If you need to have labels, choose fairly round axis step
- sizes like 2 or 5
-
- windows that you enter functions into may not always be updated properly if
- you don't OK them manually before selecting a new function to edit. (This
- is fairly rare)
-
- sitting around for hours waiting for the output window to redraw and the
- graphs to be calculated. See main !Help file for hints on how to reduce
- this time.
-
- if you try to plot functions which map to very large numbers you'll probably
- get a 'Number too big' error. In theory my error trapping should catch this
- but it doesn't. (Occurs with exponential functions with a large domain)
-
- lack of support for E notation. You can't enter Es into numerical fields
- (like in the range window) and if you do so in a function definition (either
- user or direct plot) you'll either get an undefined function error or if
- you've defined a function 'e' this will be evaluated. For example 2E-6x
- will get evaluated as 2*e(-6*x). The trace window doesn't deal with Es very
- effectively and who knows what the labelling routine does.... If you MUST
- use 'E's (the mathematical function rather than the drug) then do
- (2*10^-6)x to achieve 2E-6x.
-
- also I don't recommend zooming up or down by more than a factor of 10 - or
- you'll have time to boil a kettle, put up some shelves and do that loft
- conversion before the screen update is completed.
-
- THINGS WHICH ARE NOT MY FAULT
-
- Considering this is written in Basic and I have never got closer than 10
- metres (sorry 30 feet!) to a Risc Os Programmers Reference Manual I don't
- think I've done a bad job actually. (It's also the first release version)
-
- However the program relies on the BASIC V rom to do the calculations and
- this has a number of 'features' which I didn't know about until I wrote
- this. I may divulge these at a later date but at the moment I feel things
- could get a little involved. Suffice to say if you're really interested,
- look at the Presets file in !Edit and try to suss out why the cuberoot
- function is defined as it is rather than the more obvious 'x^(1/3)' If
- you're lost by this then the problems caused by the BASIC rom probably won't
- concern you EXCEPT for this one...
-
- I noticed this when I had an Electron (don't laugh) but it's a problem that
- also appears in BASIC V. For calculation, values are stored as floating
- point numbers. However for input and output in the range window for
- example, strings must be used. The conversion routines supplied by Mr Acorn
- in BASIC - STR$ and VAL - do not always return the correct result. This
- manifests itself in 8.4 turning into 8.39999999 for example. I haven't
- investigated BASIC VI to see if it's any better but I am seriously
- considering writing my own routine to cope with this. Whether this will
- involve in developing my own way of storing values or my own STR$ and VAL
- functions remains to be seen but if I crack it it will be a cry of Eureka I
- feel.
-
- Anything which doesn't comply to the RISC OS Style Guide is understandable
- as I haven't seen it.
-
-
- PLANNED UPDATES
- ===============
-
- In the dim and distant future a version 3 is planned with (guess what) a new
- user interface. I invisage the windows staying roughly the same but a
- !Wordz style button-bar to access them rather than this somewhat cumbersome
- menu system.
-
- But before then:
-
- speedier redrawing is my first priority (machine code called for perhaps)
-
- curing the inaccurate rounding in the trace window
-
- better labelling (using outline fonts rather than the scaled down system
- font - yuck yuck yuck)
-
- better error trapping
-
- scroll bars which do sensible things on zooming
-
-
- Also planned:
-
- ability to save output as a sprite and possibly even a draw file (will have
- to see PRMs first though, hint)
-
- Artworks style quality knob where you can decide the threshold for
- continuous or discrete plotting
-
- better colour selection facilities - like the one in !Draw for example - so
- you can select a colour other than the 16 basic Wimp ones
-
- print out facilities
-
- second and further derivatives and integrals
-
- transformations of transformations and calculus functions
-
- ability to enter differential equations/plot direction diagrams
-
- possibly even parametric formulae or polar graphs (bit ambitious that one I
- think) (I hate polar graphs anyway!)
-
- plus anything you suggest
-
-
- ====================== IMPORTANT BIT NUMBER ONE =======================
-
- PLEASE PLEASE PLEASE INFORM ME OF ANY BUGS YOU FIND AND ANY SUGGESTIONS FOR
- IMPROVEMENT. I AM KEEN TO DEVELOP THE PROGRAM FURTHER AND WOULD THEREFORE
- INVITE YOU TO BECOME A REGISTERED USER. I CAN'T PROMISE AN IMMEDIATE UPDATE
- (UNLESS THERE'S A REALLY DIRE BUG) BUT THE MORE PEOPLE WHO REGISTER, THE
- SOONER I'LL BE ABLE TO AFFORD SOME PRMS AND DO A PROPER JOB (as we say down
- here).
-
- IF ANYBODY IS USING THIS IN AN EDUCATIONAL ESTABLISHMENT COULD THEY TELL ME
- HOW THE SOFTWARE SURVIVES. I'M ALSO INTERESTED TO KNOW IF IT RUNS ON A
- NETWORK.
-
- SO... REPORTS OF BUGS, FAT CHEQUES OR ANY COMMUNICATION REALLY TO
-
- RICHARD BLYTHE
- 37 WELL WAY
- PORTH
- NEWQUAY
- CORNWALL
- TR7 3LS
-
-
-
- All files except WimpHeap library copyright (c) 1994 Richard Blythe
-
- WimpHeap library is courtesy of Ben Summers and (c) Acorn Computing Magazine
- December 1993. Without WimpHeap this program could not be written so thanks
- Ben and thanks Europress for such a good magazine.
-
-